home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Cream of the Crop 26
/
Cream of the Crop 26.iso
/
os2
/
plnk081.zip
/
pilot-link.0.8.1
/
include
/
pi-iambicExpense.hxx
< prev
next >
Wrap
Text File
|
1997-05-23
|
3KB
|
95 lines
#ifndef _IAMBICEXPENSE_HXX /* -*- C++ -*- */
#define _IAMBICEXPENSE_HXX
#include "pi-appinfo.hxx"
#define reimburse 0x01
#define receipt 0x02
const int IAMBIC_EXPENSE_APP_INFO_SIZE = 512;
class iambicExpenseAppInfo_t : public appInfo_t
{
category_t _conversionNames;
public:
iambicExpenseAppInfo_t(void *);
const category_t &conversionNames(void) const { return _conversionNames; }
// You can't install an expense entry yet, but we have to provide this
// function or the compiler will choke, as the parent defines this as
// a pure virtual function.
void *pack(void) { return NULL; }
};
class iambicExpenseList_t; // Forward declaration
class iambicExpense_t : public baseApp_t
{
friend iambicExpenseList_t;
short _flags;
char *_type;
char *_paidby;
char *_payee;
char *_note;
double _amount;
double _milesStart, _milesEnd;
double _exchangeRate;
tm _date;
iambicExpense_t *_next;
// Will never get called, but we need the name
void *internalPack(unsigned char *a) { return NULL; }
public:
iambicExpense_t(void) : baseApp_t() {
(void) memset(this, '\0', sizeof(iambicExpense_t));
}
iambicExpense_t(void *buf) : baseApp_t() { unpack(buf, 1); }
iambicExpense_t(void *buf, int attr, recordid_t id, int category)
: baseApp_t(attr, id, category)
{
unpack(buf, 1);
}
iambicExpense_t(const iambicExpense_t &);
~iambicExpense_t();
const char *type(void) const { return _type; }
const char *paidBy(void) const { return _paidby; }
const char *paidby(void) const { return _paidby; }
const char *payee(void) const { return _payee; }
const char *note(void) const { return _note; }
double amount(void) const { return _amount; }
double milesStart(void) const { return _milesStart; }
double milesEnd(void) const { return _milesEnd; }
double exchangeRate(void) const { return _exchangeRate; }
const tm *date(void) const { return &_date; }
void unpack(void *, int = 0);
// We don't let you pack one of these, but we must provide the name
void *pack(int *a) { return NULL; }
void *pack(void *a, int *b) { return NULL; }
};
class iambicExpenseList_t
{
iambicExpense_t *_head;
public:
iambicExpenseList_t(void) : _head(NULL) {}
~iambicExpenseList_t();
iambicExpense_t *first() { return _head; }
iambicExpense_t *next(iambicExpense_t *ptr) { return ptr->_next; }
void merge(iambicExpense_t &);
void merge(iambicExpenseList_t &);
};
#endif // _IAMBICEXPENSE_HXX